#!/usr/bin/env python
# -*-coding: utf-8 -*-
# Filename: grupo_de_resolucion.py

##
# Módulos del sistema
# Parte gráfica
try:
    import pygtk
    pygtk.require("2.0")
    import gtk
    import gtk.glade
except ImportError, error:
    print error
    print "Necesitas la librería gráficas gtk+pygtk"
# Utilidades
from datetime import datetime

##
# Módulos propios
try:
    from lib.config import WIDTH, HEIGHT
    from gui.msj_retroalimentacion import MensajeDeAdvertencia, MensajeDeAbout
    from lib.grupo_de_resolucion import GrupoDeResolucion
    from gui.create_clasificacion_ticket import CrearClasificacionTicket
    from gui.buscar_clasificacion import BuscarClasificacionTicket
    from gui.buscar_intervenciones import BuscarIntervenciones
    import inicio_de_sesion
except ImportError, error:
    print error
    print "No se pudieron cargar los modulos necesarios para correr el sistema"
    print "Error en grupo_de_resolucion"

class GrupoDeResolucionGUI:
    def __init__(self, usuario_logueado):
        self.gladefile = "gui/ghhp.glade"
        self.wTree = gtk.glade.XML(self.gladefile, "GrupoDeResolucion")
        self.window = self.wTree.get_widget("GrupoDeResolucion")
        #self.window.resize(WIDTH,HEIGHT)
        self.window.maximize()
        self.un_dict={"on_toolbutton1_clicked": self.crear_clasificacion,
                "on_toolbutton2_clicked" : self.buscar_clasificacion,
                "on_toolbutton3_clicked" : self.buscar_intervencion_gui,
                "on_toolbutton4_clicked" : self.close_sesion,
                "on_GrupoDeResolucion_destroy" : self.close,
                "on_salir3_activate" : self.close,
                "on_menuitem18_activate": self.about,
                "on_Ayuda_activate": self.ayuda,
                "on_button128_clicked": self.buscar_intervencion,
                "on_button129_clicked": self.limpiar,
                "on_button132_clicked": self.cancelar,
                "on_button133_clicked": self.editar_estado_intervencion,
                "on_button141_clicked": self.agregar_observacion,
                "on_button142_clicked": self.aceptar,
                "on_button143_clicked": self.cancelar}
        self.wTree.signal_autoconnect(self.un_dict)
        self.wTree.get_widget("calendar3").select_day(datetime.now().day)
        self.usuario_logueado = usuario_logueado
        self.grupo_de_resolucion= self.usuario_logueado.grupo_de_resolucion
        self.put_user_and_date(self.usuario_logueado.empleado.apellido + " " +
                self.usuario_logueado.empleado.nombre + " ")
        self.notebook2 = self.wTree.get_widget("notebook2")
        gtk.main()
   
    def put_user_and_date(self, user):
        """Muestra el usuario y la fecha actual. """
        fecha = "Fecha: " + datetime.now().strftime("%Y-%m-%d")
        texto = (self.wTree.get_widget("label313").get_text() + ":", user,
                ("Usuario: %s" % self.usuario_logueado.u_legajo),
                "Grupo de Resolucion: ", self.grupo_de_resolucion.nombre)
        self.wTree.get_widget("label313").set_text("\n".join(texto))
        
    def crear_clasificacion(self, widget):
        print "Crear clasificacion de ticket"
        self.crear_clasificacion = CrearClasificacionTicket(self)

    def buscar_clasificacion(self, widget):
        print "Buscar clasificacin de ticket"
        self.buscar_clasificacion = BuscarClasificacionTicket(self)

    def buscar_intervencion_gui(self, widget=None):
        print "Buscar intervencion"
        #self.intervenciones = BuscarIntervenciones(self)
        self.intervenciones = BuscarIntervenciones(self)
        self.notebook2.show()
    
    def buscar_intervencion(self, widget=None):
        print "Buscar intervenciones --grupo--"
        self.intervenciones.buscar_intervenciones()

    def limpiar(self, widget=None):
        self.intervenciones.limpiar_campos()

    def editar_estado_intervencion(self, widget):
        self.intervenciones.editar_estado()
    
    def agregar_observacion(self, widget):
        """Permite ejecutar el msj de agregar observaciones"""
        self.intervenciones.agregar_observaciones()

    def aceptar(self, widget):
        self.intervenciones.aceptar()

    def cancelar(self, widget):
        texto = "¿Está seguro que desea cancelar la operacion?"
        msj = MensajeDeAdvertencia(texto, self.window)
        if msj.msj.run() == gtk.RESPONSE_YES:
            self.limpiar()
            self.intervenciones.hbox_90.show()
            self.intervenciones.hbox_93.hide()
            self.notebook2.hide()
            msj.msj.destroy()
        else:
            msj.msj.destroy()

    def close_sesion(self, widget):
        """Cierra la sesión."""
        print "Close Sesion"
        #self.window.destroy()
        texto = "¿Está seguro que desea cerrar la sesion?"
        msj = MensajeDeAdvertencia(texto, self.window)
        if msj.msj.run() == gtk.RESPONSE_YES:
            print "Cerrando sesion"
            self.window.destroy()
            inicio = inicio_de_sesion.InicioSesion()
        else:
            msj.msj.destroy()
        
    def close(self, widget):
        print "Gracias por utilizar Ghhp"
        gtk.main_quit()
    
    def ayuda(self, widget):
        print "Hacer el manual de usuario"

    def about(self, widget):
        print "About"
        msj = MensajeDeAbout(widget)
        if msj.msj.run() == -6:
            msj.msj.destroy()




